package disenioPantallas.AltaAnimal;

import java.awt.Dimension;
import java.awt.Image;
import java.awt.Label;

import javax.swing.AbstractAction;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import java.awt.Font;
import java.awt.Component;
import java.awt.event.ActionEvent;

import javax.swing.Box;
import javax.swing.border.TitledBorder;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;

import disenioPantallas.elementos.EButton;
import disenioPantallas.elementos.EComboBox;
import disenioPantallas.elementos.ELabel;
import disenioPantallas.elementos.EPanel;
import disenioPantallas.elementos.ETextField;
import disenioPantallas.elementos.FrameAutenticado;
import disenioPantallas.elementos.panelGeneral;
import entidades.Campo;
import entidades.Categoria;
import entidades.Especie;
import entidades.Lugar;
import entidades.Potrero;
import entidades.Raza;
import gestores.GestorAnimal;
import gestores.GestorCampo;
import gestores.GestorErrores;
import gestores.GestorSistema;

import actionListeners.cancelarAction;

import java.util.Date;
import java.util.Calendar;
import java.util.Vector;
import javax.swing.JTextArea;
import java.awt.FlowLayout;
import java.io.File;

public class AltaAnimal extends panelGeneral {

	private static final long serialVersionUID = 1L;
	private GestorSistema gSistema= GestorSistema.getGestorSistema();
	private GestorErrores gError= GestorErrores.getGestorErrores();
	private GestorAnimal gAnimal=GestorAnimal.getGestorAnimal();
	

	private Vector<String> caravanas= new Vector<String>();
	private Vector<String> nombreEspecie= new Vector<String>();
	private Vector<Raza> razasEncontradas= new Vector<Raza>();
	private Vector<Campo> camposEncontrados= new Vector<Campo>();
	private Vector<String> nombreSexo= new Vector<String>();
	private Vector<Categoria> categoriasEncontradas= new Vector<Categoria>();
	private Vector<String> nombreLugares= new Vector<String>();
	private Vector<String> nombreRazas= new Vector<String>();
	private Vector<String> nombreCategorias= new Vector<String>();
	private Vector<String> nombrePotreros= new Vector<String>();
	private EComboBox cbRaza;
	private EComboBox cbCategoria;
	private EComboBox cbSexo;
	private EComboBox cbEspecie;
	private EComboBox cbPotrero;
	private EComboBox cbCampo;
	private ETextField txNombre;
	private ETextField txMadre;
	private ETextField txPadre;
	private ETextField txCaravana;
	private JSpinner spinner;
	private JTextArea txAspecto;
	private Vector<Especie> especiesEncontradas;
	private GestorCampo gCampo=GestorCampo.getGestorCampo();
	private JButton btnMuchos;

	private ImageIcon nuevoIcono= null;
	private JLabel lbAnimal;
	private JTextField txtDireccionImagen;
	
	public AltaAnimal() {
		
		super();
		setPreferredSize(new Dimension(900, 700));
		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
		
		Component verticalStrut_2 = Box.createVerticalStrut(20);
		add(verticalStrut_2);
		
		JPanel panelTitulo = new JPanel();
		panelTitulo.setOpaque(false);
		add(panelTitulo);
		panelTitulo.setLayout(new BoxLayout(panelTitulo, BoxLayout.X_AXIS));
		
		JLabel lbTitulo = new JLabel("Ingreso de un Animal");
		panelTitulo.add(lbTitulo);
		lbTitulo.setFont(new Font("Cambria", Font.PLAIN, 24));
		
		Component verticalStrut_1 = Box.createVerticalStrut(35);
		add(verticalStrut_1);

		
		JPanel panelCentral = new JPanel();
		panelCentral.setOpaque(false);
		add(panelCentral);
		
		panelCentral.setLayout(new BoxLayout(panelCentral, BoxLayout.Y_AXIS));
		lbTitulo.setText("Dar de Alta Animal");
		
		JPanel panelDatos = new JPanel();
		panelDatos.setOpaque(false);
		panelCentral.add(panelDatos);
		panelDatos.setLayout(new BoxLayout(panelDatos, BoxLayout.X_AXIS));
		
		JPanel panelInfo = new JPanel();
		panelInfo.setMaximumSize(new Dimension(550, 32767));
		panelInfo.setOpaque(false);
		panelDatos.add(panelInfo);
		panelInfo.setLayout(new BoxLayout(panelInfo, BoxLayout.Y_AXIS));
		
		EPanel panelEspecie = new EPanel();
		panelInfo.add(panelEspecie);
			ELabel lbEspecie= new ELabel("ESPECIE: ");
			panelEspecie.add(lbEspecie);
			
			Component horizontalStrut2 = Box.createHorizontalStrut(20);
			panelEspecie.add(horizontalStrut2);
			cbEspecie= new EComboBox();
			panelEspecie.add(cbEspecie);
			cbEspecie.addActionListener(new cbEspecieAction());
			
			Component horizontalStrut_3 = Box.createHorizontalStrut(35);
			panelEspecie.add(horizontalStrut_3);
																
		EPanel panelRaza = new EPanel();
		panelInfo.add(panelRaza);
			ELabel lbRaza= new ELabel("RAZA: ");
			panelRaza.add(lbRaza);
			
			Component horizontalStrut3 = Box.createHorizontalStrut(20);
			panelRaza.add(horizontalStrut3);
			cbRaza= new EComboBox();
			panelRaza.add(cbRaza);
			
			Component horizontalStrut_4 = Box.createHorizontalStrut(35);
			panelRaza.add(horizontalStrut_4);
										
		EPanel panelSexo = new EPanel();
		panelInfo.add(panelSexo);
			ELabel lbSexo= new ELabel("SEXO: ");
			panelSexo.add(lbSexo);
			Component horizontalStrut5 = Box.createHorizontalStrut(20);
			panelSexo.add(horizontalStrut5);
			cbSexo= new EComboBox();
			panelSexo.add(cbSexo);			
			cbSexo.addActionListener(new cbSexoAction());
			
			Component horizontalStrut_6 = Box.createHorizontalStrut(35);
			panelSexo.add(horizontalStrut_6);
		
		EPanel panelCategoria = new EPanel();
		panelInfo.add(panelCategoria);
			ELabel lbCategoria= new ELabel("CATEGORIA: ");
			panelCategoria.add(lbCategoria);
			Component horizontalStrut6 = Box.createHorizontalStrut(20);
			panelCategoria.add(horizontalStrut6);
			cbCategoria= new EComboBox();
			panelCategoria.add(cbCategoria);
			
			Component horizontalStrut_7 = Box.createHorizontalStrut(35);
			panelCategoria.add(horizontalStrut_7);
				
				EPanel panelCaravana = new EPanel();
				panelInfo.add(panelCaravana);
				ELabel lbCaravana= new ELabel("CARAVANA: ");
				panelCaravana.add(lbCaravana);
				
				Component horizontalStrut = Box.createHorizontalStrut(20);
				panelCaravana.add(horizontalStrut);
				txCaravana= new ETextField();
				txCaravana.setEnabled(false);
				panelCaravana.add(txCaravana);
				
				btnMuchos = new JButton("+");
				panelCaravana.add(btnMuchos);
				btnMuchos.addActionListener(new caravanaAction());
		
															
				EPanel panelLugar = new EPanel();
				panelInfo.add(panelLugar);
				ELabel lbCampo= new ELabel("CAMPO:");
				panelLugar.add(lbCampo);
				
				Component horizontalStrut4 = Box.createHorizontalStrut(20);
				panelLugar.add(horizontalStrut4);
				cbCampo= new EComboBox();
				panelLugar.add(cbCampo);
				cbCampo.addActionListener(new cbCamposAction());
				
				Component horizontalStrut_5 = Box.createHorizontalStrut(35);
				panelLugar.add(horizontalStrut_5);
		
		EPanel panelPotrero = new EPanel();
		panelInfo.add(panelPotrero);
		
		ELabel lbPotrero = new ELabel("POTRERO:");
		panelPotrero.add(lbPotrero);
		
		Component horizontalStrut_2 = Box.createHorizontalStrut(20);
		panelPotrero.add(horizontalStrut_2);
		
		cbPotrero = new EComboBox();
		panelPotrero.add(cbPotrero);
		
		Component horizontalStrut_10 = Box.createHorizontalStrut(35);
		panelPotrero.add(horizontalStrut_10);
								
		EPanel panelNombre = new EPanel();
		panelInfo.add(panelNombre);
			ELabel lbNombre= new ELabel("NOMBRE: ");
			panelNombre.add(lbNombre);
			Component horizontalStrut7 = Box.createHorizontalStrut(20);
			panelNombre.add(horizontalStrut7);
			txNombre= new ETextField();
			panelNombre.add(txNombre);
			
			Component horizontalStrut_8 = Box.createHorizontalStrut(35);
			panelNombre.add(horizontalStrut_8);
						
		EPanel panelNacimiento = new EPanel();
		panelInfo.add(panelNacimiento);
			ELabel lbNacimiento= new ELabel("NACIMIENTO: ");
			panelNacimiento.add(lbNacimiento);
			Component horizontalStrut8 = Box.createHorizontalStrut(20);
			panelNacimiento.add(horizontalStrut8);
			
			spinner = new JSpinner();
			spinner.setFont(new Font("Cambria", Font.PLAIN, 16));
			spinner.setModel(new SpinnerDateModel(new Date(1357268400000L), new Date(-2208973392000L), null, Calendar.DAY_OF_YEAR));
			spinner.setPreferredSize(new Dimension(150, 35));
			spinner.setValue(new Date());

			panelNacimiento.add(spinner);
			
			Component horizontalStrut_9 = Box.createHorizontalStrut(35);
			panelNacimiento.add(horizontalStrut_9);

				
		EPanel panelMadre = new EPanel();
		panelInfo.add(panelMadre);			
			ELabel lbMadre= new ELabel("MADRE: ");
			panelMadre.add(lbMadre);
			Component horizontalStrut9 = Box.createHorizontalStrut(20);
			panelMadre.add(horizontalStrut9);
			txMadre= new ETextField();
			panelMadre.add(txMadre);
			
			JButton btnMadre = new JButton("...");
			btnMadre.setActionCommand("Madre");
			btnMadre.setPreferredSize(new Dimension(35, 28));
			panelMadre.add(btnMadre);
			btnMadre.addActionListener(new padresAction());
		
		EPanel panelPadre = new EPanel();
		panelInfo.add(panelPadre);
			ELabel lbPadre= new ELabel("PADRE: ");
			panelPadre.add(lbPadre);
			Component horizontalStrut10 = Box.createHorizontalStrut(20);
			panelPadre.add(horizontalStrut10);
			txPadre= new ETextField();
			panelPadre.add(txPadre);
			
			JButton btnPadre = new JButton("...");
			btnPadre.setActionCommand("Padre");
			btnPadre.setPreferredSize(new Dimension(35, 28));
			panelPadre.add(btnPadre);
			btnPadre.addActionListener(new padresAction());
		
		Component horizontalStrut_1 = Box.createHorizontalStrut(20);
		panelDatos.add(horizontalStrut_1);

		
		
		JPanel panelImagen = new JPanel();
		panelImagen.setPreferredSize(new Dimension(250, 300));
		panelImagen.setMaximumSize(new Dimension(250, 800));
		panelImagen.setOpaque(false);
		panelDatos.add(panelImagen);
		panelImagen.setLayout(new BoxLayout(panelImagen, BoxLayout.Y_AXIS));
		
		JPanel panelAspecto = new JPanel();
		panelAspecto.setOpaque(false);
		panelImagen.add(panelAspecto);
		panelAspecto.setLayout(new BoxLayout(panelAspecto, BoxLayout.X_AXIS));
		
		Component horizontalStrut_11 = Box.createHorizontalStrut(10);
		panelAspecto.add(horizontalStrut_11);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setPreferredSize(new Dimension(190, 170));
		scrollPane.setMinimumSize(new Dimension(190, 170));
		scrollPane.setBorder(new TitledBorder(null, "Aspecto", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panelAspecto.add(scrollPane);
		
		txAspecto = new JTextArea();
		scrollPane.setViewportView(txAspecto);
		
		Component horizontalStrut_12 = Box.createHorizontalStrut(10);
		panelAspecto.add(horizontalStrut_12);

		JPanel panelFoto = new JPanel();
		panelFoto.setOpaque(false);
		panelImagen.add(panelFoto);
		
		JPanel panelImage = new JPanel();
		panelImage.setOpaque(false);
		panelImage.setBorder(javax.swing.BorderFactory.createTitledBorder("Nombre"));		
		txtDireccionImagen = new JTextField();
		txtDireccionImagen.setText("imagen.jpg");
		txtDireccionImagen.setEnabled(false);
		ImageIcon icon = createImageIcon("/imagenes/TOROO.jpg",txtDireccionImagen);
		panelImage.setLayout(new BoxLayout(panelImage, BoxLayout.X_AXIS));

		lbAnimal= new JLabel(icon);
		lbAnimal.setPreferredSize(new Dimension(190, 190));
		panelImage.add(lbAnimal);
		panelFoto.add(panelImage);
		
		JPanel panel = new JPanel();
		panel.setOpaque(false);
		panelFoto.add(panel);
		panel.add(txtDireccionImagen);

		

		JButton btnExaminar = new JButton("Examinar");
		btnExaminar.setFont(new Font("Cambria", Font.PLAIN, 16));
		panel.add(btnExaminar);
		btnExaminar.addActionListener(new SeleccionarImagenAction());
		
		JPanel panelBotones = new JPanel();
		panelBotones.setOpaque(false);
		panelBotones.setMaximumSize(new Dimension(32676, 70));
		add(panelBotones);
		panelBotones.setLayout(new BoxLayout(panelBotones, BoxLayout.Y_AXIS));
		
		Component verticalStrut = Box.createVerticalStrut(50);
		panelBotones.add(verticalStrut);
		

		
		
		JPanel panelBoton = new EPanel();
		panelBoton.setMaximumSize(new Dimension(600, 45));
		panelBoton.setPreferredSize(new Dimension(600, 45));
		panelBotones.add(panelBoton);
		
		JButton btnAceptar = new EButton("ACEPTAR");
		panelBoton.add(btnAceptar);
		btnAceptar.addActionListener(new aceptarAction());
		
		JButton btnSetearDatos = new EButton("SETEAR DATOS");
		panelBoton.add(btnSetearDatos);
		
		JButton btnCancelar = new EButton("CANCELAR");
		panelBoton.add(btnCancelar);
		btnCancelar.addActionListener(new cancelarAction());
		

		
	
		
	}
	
	
	private class cbSexoAction extends AbstractAction{

		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent arg0) {
			String esp=(String) cbEspecie.getSelectedItem();
			String sexo=(String) cbSexo.getSelectedItem();
					
			
			nombreCategorias= new Vector<String>();
			
			for(int i=0;i<categoriasEncontradas.size();i++){
				if(((categoriasEncontradas.get(i).getSexo().equals(sexo)) &&(categoriasEncontradas.get(i).getEspecie().equals(esp)) && (!nombreCategorias.contains(categoriasEncontradas.get(i).getCategoria()))))
					nombreCategorias.add(categoriasEncontradas.get(i).getCategoria());
				
				}
			cbCategoria.setModel(new DefaultComboBoxModel<>(nombreCategorias));
		}	
	}

	
	private class cbCamposAction extends AbstractAction{

		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent arg0) {
			EComboBox cb=(EComboBox) arg0.getSource();
			String campo=(String) cb.getSelectedItem();
			
			Campo c=null;
			for(int i=0;i<camposEncontrados.size();i++){
				if(camposEncontrados.get(i).getNombreCampo().equals(campo))
					c=camposEncontrados.get(i);
			}
			
			nombrePotreros= new Vector<String>();
			
			for(int i=0;i<c.getPotreros().size();i++){
				nombrePotreros.add(c.getPotreros().get(i).getNombrePotrero());
				
				}
			cbPotrero.setModel(new DefaultComboBoxModel<>(nombrePotreros));
		}	
	}

	
    protected static ImageIcon createImageIcon(String path,JTextField lb) {
    	java.net.URL imgURL = Label.class.getResource(path);
   		if (imgURL != null) {
   			lb.setText(path);
   			return new ImageIcon(imgURL);
   		} else {
   			System.err.println("Couldn't find file: " + path);
   			return null;
   		}
}
    private class padresAction extends AbstractAction{

		private static final long serialVersionUID = 1L;
		public void actionPerformed(ActionEvent e) {
			JButton button=(JButton) e.getSource();
			int pariente;
			DBuscarPariente dialog= new DBuscarPariente();
			dialog.setEspecie(cbEspecie.getSelectedItem().toString());
			if(button.getActionCommand().equals("Padre")) dialog.setSexo("MACHO"); else dialog.setSexo("HEMBRA");
			dialog.cargarCampos();
			dialog.activarDG();
			pariente=dialog.getIdAnimalSeleccionado();
			if(button.getActionCommand().equals("Padre")){
				txPadre.setText(""+pariente);
			}else{
				txMadre.setText(""+pariente);
			}
			
			
			
		}
    	
    	
    }
    
    private class caravanaAction extends AbstractAction{


		private static final long serialVersionUID = 1L;

	
		public void actionPerformed(ActionEvent arg0) {
			DIngresarCaravana dialog= new DIngresarCaravana();
			dialog.activarDG();
			if(dialog.getCaravana()!=null){
				caravanas.add(dialog.getCaravana());
				String resultado=new String("");
				for(int i=0;i<caravanas.size();i++){
					String corchetes= String.format("[%s] ", caravanas.get(i)); 
					resultado+=corchetes;
			}

				txCaravana.setText(resultado);
			}
			
		}
    	
    }
    
    
    
    private class cbEspecieAction extends AbstractAction{

		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent arg0) {
			String sexo=(String) cbSexo.getSelectedItem();
			String esp=(String) cbEspecie.getSelectedItem();
			
			nombreRazas= new Vector<String>();
			
			for(int i=0;i<razasEncontradas.size();i++){
				if(((razasEncontradas.get(i).getEspecie().equals(esp)) && (!nombreRazas.contains(razasEncontradas.get(i).getRaza()))))
					nombreRazas.add(razasEncontradas.get(i).getRaza());
				
				}
			cbRaza.setModel(new DefaultComboBoxModel<>(nombreRazas));
			
			
					
			
			nombreCategorias= new Vector<String>();
			
			for(int i=0;i<categoriasEncontradas.size();i++){
				if(((categoriasEncontradas.get(i).getSexo().equals(sexo)) &&(categoriasEncontradas.get(i).getEspecie().equals(esp)) && (!nombreCategorias.contains(categoriasEncontradas.get(i).getCategoria()))))
					nombreCategorias.add(categoriasEncontradas.get(i).getCategoria());
				
				}
			cbCategoria.setModel(new DefaultComboBoxModel<>(nombreCategorias));

			
		}
    	
    	
    }
    
    public class aceptarAction extends AbstractAction{
		private static final long serialVersionUID = 1L;
		private String sespecie, ssexo, sraza, scategoria, spotrero, scampo, nombre,aspecto;
		private Integer madre,padre;
		private Date fecha;
		private Raza raza=null;
		private Categoria categoria=null;
		private Potrero potrero=null;
		
		public void actionPerformed(ActionEvent arg0) {
			sespecie=(String) cbEspecie.getSelectedItem();
			ssexo=(String) cbSexo.getSelectedItem();
			sraza=(String) cbRaza.getSelectedItem();
			scategoria=(String) cbCategoria.getSelectedItem();
			spotrero=(String) cbPotrero.getSelectedItem();
			scampo=(String) cbCampo.getSelectedItem();
			nombre=txNombre.getText();
			fecha=(Date) spinner.getValue();
			aspecto=txAspecto.getText();
			
			if(!txMadre.getText().equals("")) madre=Integer.parseInt(txMadre.getText()); else madre=null;
			if(!txPadre.getText().equals("")) padre=Integer.parseInt(txPadre.getText()); else padre=null;
			
		
			int i=0;
			while(raza==null && i<razasEncontradas.size()){
				if(razasEncontradas.get(i).getEspecie().equals(sespecie) && razasEncontradas.get(i).getRaza().equals(sraza))
					raza=razasEncontradas.get(i);
				i++;
			}

			i=0;
			while(categoria==null && i<categoriasEncontradas.size()){
				if(categoriasEncontradas.get(i).getEspecie().equals(sespecie) && categoriasEncontradas.get(i).getSexo().equals(ssexo) && categoriasEncontradas.get(i).getCategoria().equals(scategoria))
					categoria=categoriasEncontradas.get(i);
				i++;
			}

			i=0;
			while(potrero==null && i<camposEncontrados.size()){
				if(camposEncontrados.get(i).getNombreCampo().equals(scampo)){
					int j=0;
					while(j<camposEncontrados.get(i).getPotreros().size()){
						if(camposEncontrados.get(i).getPotreros().get(j).getNombrePotrero().equals(spotrero))
							potrero=camposEncontrados.get(i).getPotreros().get(j);
						j++;
					}
				}
				i++;
			}
			
			
			try {
				gAnimal.darAltaAnimal(raza, categoria, caravanas, potrero, aspecto, madre, padre, nombre, fecha,txtDireccionImagen.getText());
				gError.mostrarCartelAdvertencia("Se ha registrado correctamente");
				((FrameAutenticado) gSistema.getFrame()).quitarCU();
			} catch (Throwable e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				gError.mostrarCartelError(e.getMessage());
			}
			
			
			
			
		}

    	
    }


	public void cargarCampos() {
		
		try {
			especiesEncontradas=gSistema.getEspeciesEncontradas();
			camposEncontrados= gCampo.getCamposEncontrados();
			categoriasEncontradas= gSistema.getCategoriasEncontradas();
			razasEncontradas= gSistema.getRazasEncontradas();
			
			for(int i=0;i<especiesEncontradas.size();i++){
					nombreEspecie.add(especiesEncontradas.get(i).getNombreEspecie());
				}
			cbEspecie.setModel(new DefaultComboBoxModel<>(nombreEspecie));
			cbEspecie.setSelectedIndex(0);
			
			nombreSexo.add("MACHO");
			nombreSexo.add("HEMBRA");
			cbSexo.setModel(new DefaultComboBoxModel<>(nombreSexo));
			
			
			nombreCategorias= new Vector<String>();
			
			for(int i=0;i<categoriasEncontradas.size();i++){
				if(((categoriasEncontradas.get(i).getSexo().equals(cbSexo.getSelectedItem()) &&(categoriasEncontradas.get(i).getEspecie().equals(cbEspecie.getSelectedItem())) && (!nombreCategorias.contains(categoriasEncontradas.get(i).getCategoria())))))
					nombreCategorias.add(categoriasEncontradas.get(i).getCategoria());
				}
			cbCategoria.setModel(new DefaultComboBoxModel<>(nombreCategorias));


			
			
			for(int i=0;i<camposEncontrados.size();i++){
				nombreLugares.add(camposEncontrados.get(i).getNombreCampo());
			}
			
			cbCampo.setModel(new DefaultComboBoxModel<>(nombreLugares));
			
			if(camposEncontrados.size()>0){
				Campo c=camposEncontrados.get(0);
			
				nombrePotreros= new Vector<String>();
				
				for(int i=0;i<c.getPotreros().size();i++){
					nombrePotreros.add(c.getPotreros().get(i).getNombrePotrero());
					
					}
				cbPotrero.setModel(new DefaultComboBoxModel<>(nombrePotreros));
			}


			
		} catch (Throwable e) {
			e.printStackTrace();
			gError.mostrarCartelError(e.getMessage());
		}

		
	}
	
	class SeleccionarImagenAction extends AbstractAction{

		
		private static final long serialVersionUID = 1L;

		public void actionPerformed(ActionEvent e) {
	         JFileChooser selector = new JFileChooser();
				 selector.setFileFilter(new FileNameExtensionFilter("JPG, PNG & GIF","jpg","png","gif"));
				 int estado = selector.showOpenDialog(null);
				 File archivoelegido = selector.getSelectedFile();
				 String ruta = archivoelegido.getAbsolutePath();
				 if (estado==JFileChooser.APPROVE_OPTION){
					 ImageIcon nuevoIcon = new ImageIcon(ruta);
					 Image nuevaImg = nuevoIcon.getImage();
					 Image nuevaImagen = nuevaImg.getScaledInstance(190, 190,  java.awt.Image.SCALE_SMOOTH);
					 nuevoIcono = new ImageIcon(nuevaImagen);
					 lbAnimal.setIcon(nuevoIcono);
					 txtDireccionImagen.setText(ruta);
				 	}
				 
				 }
		}
			
}



